10-6 uuXucv洏

由前文的說明,可以看出曲線(或是曲面)擬和,是一個「互動式」的過程,常常需要反覆觀察數學模型與取樣點的接近度,同時也要考慮模型的合理性,以及對於其它資料的適用性。簡單來說,曲線擬合包含下列幾個步驟:

  1. 觀察資料,並剔除明顯不合理的資料(這些資料在統計學上稱為 Outliers)。
  2. 根據資料,選定數學模型及相關參數。
  3. 根據線性或非線性迴歸的各種方法,以及一組給定的訓練資料(Training Data),算出參數的最佳值。
  4. 觀察模型的誤差,以及模型對於其它測試資料(Test Data)的效能,以決定此模型的適用性。若適用,則停止此演算法。反之,若不適用,則根據模型的對於訓練及測試資料的誤差程度,重新修正模型,並回到步驟 3。

以上這幾個步驟,不但需要經驗,而且由於必須反覆進行,可能耗費大量時間,有鑑於此,MathWorks 公司在 MATLAB 6.x 後,推出了「曲線擬合工具箱」(Curve Fitting Toolbox),讓使用能以 GUI (圖形使用者介面)的方式,來進行曲線擬合,並能快速地檢視擬合的結果和成效。

以下將以實際範例的操作,來說明「曲線擬合工具箱」的使用。如果你要嘗試下列的操作,請務必要先安裝「曲線擬合工具箱」。另,下列的說明及圖片,均是以 MATLAB 7.x 為主。

首先,我們先載入 enso.mat,裡面包含兩個變數:

  1. month:每個資料點發生的相對月份
  2. pressure:在復活島(Easter Island)和澳洲的達爾文(Darwin)兩地的大氣壓力差值,取其整個月的平均值。此差值會導引整個南半球的貿易風(Trade Winds)流向。

根據這兩個變數,我們就可以呼叫「曲線擬合工具箱」來進行曲線的分析與擬合,請見下列範例:

Example 1: 10-曲線擬合與迴歸分析/cftool01.mload enso.mat % 載入 month 和 pressure 變數 cftool(month, pressure); % 呼叫「曲線擬合工具箱」

此時此工具箱會將資料點畫出來,並將相關的操作介面顯示如上圖。為節省篇幅,我們不在此介紹操作方面的細節,讀者可以自行在畫面上選取不同的數學模型以及相關的選項,來測試其效果。


MATLAB程式設計:進階篇